package AnalizadorSintactico;

import java.util.ArrayList;

import javax.swing.tree.DefaultMutableTreeNode;

public class Decision extends Sentencia {

	private Condicion condicion;
	private ArrayList<Sentencia> sentenciasTrue;
	private ArrayList<Sentencia> sentenciasFalse;

	/**
	 *
	 * @param condicion
	 * @param sentenciasTrue
	 * @param sentenciasFalse
	 */
	public Decision(Condicion condicion, ArrayList<Sentencia> sentenciasTrue,
			ArrayList<Sentencia> sentenciasFalse) {
		this.condicion = condicion;
		this.sentenciasTrue = sentenciasTrue;
		this.sentenciasFalse = sentenciasFalse;
	}

	@Override
	public DefaultMutableTreeNode getSubArbol() {
		DefaultMutableTreeNode nodo = new DefaultMutableTreeNode(this);
		if (sentenciasTrue != null) {
			DefaultMutableTreeNode nodoT = new DefaultMutableTreeNode(
					"Sentencias Verdadero");
			for (Sentencia i : sentenciasTrue) {
				nodoT.add(i.getSubArbol());
			}
			nodo.add(nodoT);
		}
		if (sentenciasFalse != null) {
			DefaultMutableTreeNode nodoF = new DefaultMutableTreeNode(
					"Sentencias Falso");
			for (Sentencia i : sentenciasFalse) {
				if (i != null) {
					nodoF.add(i.getSubArbol());
				}
			}
			nodo.add(nodoF);
		}
		return nodo;
	}

	@Override
	public String toString() {
		return "Decision: " + condicion.toString();
	}
}
